/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import static Conexao.ConexaoBancoDeDados.getConexao;
import Model.BeanFabricante;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Jane
 */
public class DAOFabricante {

    public DAOFabricante() {
    }

    private BeanFabricante GetFabricante(ResultSet rs) {
        try {
            if (rs.first()) {
                BeanFabricante fabricante = new BeanFabricante();
                fabricante.setDescricao(rs.getString("descricao"));
                fabricante.setID(rs.getInt("ID"));
                return fabricante;
            } else {
                //Não retornou nenhuma linha
                return null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }

    private ArrayList<BeanFabricante> GetFabricantes(ResultSet rs) {
        try {
            if (rs.first()) {
                ArrayList<BeanFabricante> retorno = new ArrayList<>();
                BeanFabricante fabricante = new BeanFabricante();
                fabricante.setDescricao(rs.getString("descricao"));
                fabricante.setID(rs.getInt("ID"));
                retorno.add(fabricante);
                while (rs.next()) {
                    fabricante = new BeanFabricante();
                    fabricante.setDescricao(rs.getString("descricao"));
                    fabricante.setID(rs.getInt("ID"));
                    retorno.add(fabricante);
                }
                return retorno;
            } else {
                //Não retornou nenhuma linha
                return null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }

    public BeanFabricante RetornaFabricante(int ID) {
        try (Connection conn = getConexao()) {
            String sql;
            sql = "SELECT * FROM fabricante WHERE ID = ?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1, String.valueOf(ID));
            ResultSet rs = ps.executeQuery();
            return GetFabricante(rs);
        } catch (SQLException e) {
            return null;
        }
    }

    public ArrayList<BeanFabricante> RetornaFabricantes() {
        try (Connection conn = getConexao()) {
            String sql;
            sql = "SELECT * FROM fabricante";
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            return GetFabricantes(rs);
        } catch (SQLException e) {
            return null;
        }
    }

}
